package ee520;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class Dom4jDemo {

    public static void main(String ags[]) throws DocumentException {
        // 解析src(类路径)下的dom4j.xml

        // 1 创建一个解析器
        SAXReader reader = new SAXReader();
        // 2 使用解析器加载解析src下的dom4j.xml文件（返回一个dom树）
        //Dom4jDemo.class.getClassLoader():专门用来加载src类路径下的内容
        Document dc = reader.read(Dom4jDemo.class.getClassLoader().getResourceAsStream("dom4j.xml"));
        // 3 获取根标签
        Element root = dc.getRootElement();
        // 4 根据根标签获取子标签
        List<Element> list = root.elements();
        for (Element element : list) {
            // 获取子标签的id属性值
            String id = element.attributeValue("id");

            if("p2".equals(id)){
                // 5 根据子标签获取子子标签
                List<Element> list2 = element.elements();
                for (Element el : list2) {
                    // 6 获取子子标签的名称和内容
                    System.out.println("------------------");
                    System.out.println(el.getName());
                    System.out.println(el.getText());
                }
            }

        }


        /*
        * getRootElement()  获取根标签的
        * elements() 获取所有子标签
        * attributeValue(属性名) 根据标签的属性名 获取属性值
        * getName() 标签名
        * getText() 标签文本内容
        * */

    }
}



    /*public static void main() throws DocumentException {
        // 解析src(类路径)下的dom4j.xml

        // 1 创建一个解析器
        SAXReader reader = new SAXReader();
        // 2 使用解析器加载解析src下的dom4j.xml文件（返回一个dom树）
        //Dom4jDemo.class.getClassLoader():专门用来加载src类路径下的内容
        Document dc = reader.read(Dom4jDemo.class.getClassLoader().getResourceAsStream("dom4j.xml"));
        // 3 获取根标签
        Element root = dc.getRootElement();
        // 4 根据根标签获取子标签
        List<Element> list = root.elements();
        for (Element element : list) {
            String id=element.attributeValue("id");
            if("p2".equals(id)){
                System.out.println(element.elementText("name"));
            }
        }

        *//*
 * elementText("标签名") 根据标签名获取标签内容
 *
 * *//*
    }
}
*/